package edu.zerl.easyexceldemo.entity;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import edu.zerl.easyexceldemo.enums.ReadingStatusEnum;
import edu.zerl.easyexceldemo.enums.WxReceiveStatusEnum;
import edu.zerl.easyexceldemo.util.BaseEnumConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

@Data
@Accessors(chain = true)
@NoArgsConstructor
@ExcelIgnoreUnannotated
public class MonthReportDetailVO {

    @ApiModelProperty(value = "customer_management_contacts表主键ID")
    private Long id;

    @ApiModelProperty(value = "丰宜客服人员ID")
    private String feManagerUserId;

    @ApiModelProperty(value = "丰宜客服人员")
    @ExcelProperty(value = "成员姓名")
    private String feManager;

    @ApiModelProperty(value = "客户ID")
    @ExcelProperty(value = "客户ID")
    private Long customerId;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "货架数")
    private Integer shelfNum;

    @ApiModelProperty(value = "销售额")
    private BigDecimal saleAmount;

    @ApiModelProperty(value = "购买人次")
    private Integer buyCount;

    @ApiModelProperty(value = "商品购买件数")
    private Integer productQuantity;

    @ApiModelProperty(value = "早餐")
    private Integer breakfast;

    @ApiModelProperty(value = "下午茶")
    private Integer afternoon;

    @ApiModelProperty(value = "联系人")
    private String contactPerson;

    @ApiModelProperty(value = "联系电话")
    @ExcelProperty(value = "联系电话")
    private String contactPhone;

    @ApiModelProperty(value = "职位")
    private String jobs;

    @ApiModelProperty(value = "查看状态：0-未查看 1-已查看")
    @ExcelProperty(value = "客户查看状态", converter = BaseEnumConvert.class)
    private ReadingStatusEnum readingStatus;

    @ApiModelProperty(value = "微信端接收状态:0-未发送 1-已发送 2-因客户不是好友导致发送失败 3-因客户已经收到其他群发消息导致发送失败")
    @ExcelProperty(value = "客户接收状态", converter = BaseEnumConvert.class)
    private WxReceiveStatusEnum wxReceiveStatus;

    public MonthReportDetailVO(String feManager, Long customerId, String contactPhone, ReadingStatusEnum readingStatus, WxReceiveStatusEnum wxReceiveStatus) {
        this.feManager = feManager;
        this.customerId = customerId;
        this.contactPhone = contactPhone;
        this.readingStatus = readingStatus;
        this.wxReceiveStatus = wxReceiveStatus;
    }
}
